home *** CD-ROM | disk | FTP | other *** search
- {
-
- Q: How can I readln() from a file when the lines are longer
- than 255 bytes?
-
- A: ReadLn will accept an array [0..something] of Char as
- buffer to put the read characters in and it will make a proper
- zero-terminated char out of them. The only limitation is this:
- the compiler needs to be able to figure out the size of the
- buffer at compile time, which makes the use of a variable
- declared as PChar and allocated at run-time impossible.
-
- Workaround:
- }
-
- Type
- {use longest line you may encounter here}
- TLine = Array [0..1024] of Char;
-
- PLine = ^TLine;
-
- Var
- pBuf: PLine;
- ...
- New( pBuf );
-
- ...
- ReadLn( F, pBuf^ );
-
- To pass pBuf to functions that take a parameter of type Pchar,
- use a typecast like PChar( pBuf ).
-
- Note: you can use a variable declared as of type TLine or an
- equivalent array of char directly, of course, but I tend to
- allocate anything larger than 4 bytes on the heap...